from django.shortcuts import render,redirect
from .models import SimpleUser
# Create your views here.
#根路径访问时跳转到登录页面
def index(request):
    return redirect('login')
#注册视图函数
def register(request):
    if request.method == "POST":
        username = request.POST['username'] #获取账号
        password = request.POST['password'] #获取密码
        #判断用户名是否已经存在
        if SimpleUser.objects.filter(username=username).exists():
            #用户已经存在
            return render(request, 'account/register.html', {'error':'用户名已经存在'})
        #创建新用户
        SimpleUser.objects.create(username=username, password=password)
        #注册成功跳转
        return redirect('login')
    #如果是GET请求
    return render(request, 'account/register.html')

#登录视图函数
def login_view(request):
    if request.method=='POST':
        username = request.POST['username']
        password = request.POST['password']
        #在数据库查找匹配的用户
        try:
            user = SimpleUser.objects.get(username=username, password=password)
            #登录成功,使用session保存用户ID，表示已经登录
            request.session['user_id'] = user.id
            #跳转到欢迎页面
            return redirect('welcome')

        #如果用户信息对应不上
        except SimpleUser.DoesNotExist:
            return render(request, 'account/login.html',{'error':'用户名或密码错误'})
    #如果是GET请求，则显示登录页面
    return render(request, 'account/login.html')

#登录后的欢迎页面
def welcome(request):
    #从session中获取已登录用户的ID
    user_id= request.session.get('user_id')
    if user_id:
        #如果用户已登录，获取用户信息
        user= SimpleUser.objects.get(id=user_id)
        #渲染欢迎页面模板
        return render(request, 'account/welcome.html',{'username':user.username})
    #如果没有登录信息
    return redirect('login')

#退出登录
def logout_view(request):
    #清除session信息
    request.session.flush()
    #注销后跳转会登录页
    return redirect('login')